
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[EBAS_SP_SIKKERHED_GIV_RETTIGHED]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[EBAS_SP_SIKKERHED_GIV_RETTIGHED]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

CREATE PROCEDURE [DBO].[EBAS_SP_SIKKERHED_GIV_RETTIGHED] 
	@session varchar(255),
	@gruppeNavn varchar(255),
	@objektType varchar(255),
	@rettighed int
WITH ENCRYPTION	
AS
	DECLARE
		@egenRettighed int,
		@brugerGuid uniqueidentifier
	
	SET NOCOUNT ON	
	
	SET @egenRettighed = (
				SELECT IsNull(MAX(RE.RETTIGHEDER), 0)
				FROM EBAS_SIKKERHED_BRUGER B, EBAS_SIKKERHED_RELATION R,
				EBAS_SIKKERHED_GRUPPE G, EBAS_SIKKERHED_OBJEKT_TYPE T,
				EBAS_SIKKERHED_RETTIGHEDER RE
				WHERE B.GUID = R.SIKKERHED_BRUGER_GUID
				AND R.SIKKERHED_GRUPPE_GUID = G.GUID
				AND G.GUID = RE.SIKKERHED_GRUPPE_GUID
				AND RE.SIKKERHED_OBJEKT_TYPE_GUID = T.GUID
				AND T.NAVN = 'EBASAdmin'
				AND B.GUID = ( 	SELECT TOP 1 SIKKERHED_BRUGER_GUID 
						FROM EBAS_SIKKERHED_SESSION
						WHERE GUID = @session )				
			)
	

	-- only allowed with admin rights
	IF 16 = @egenRettighed
		UPDATE EBAS_SIKKERHED_RETTIGHEDER SET RETTIGHEDER = @rettighed
		WHERE SIKKERHED_GRUPPE_GUID = (	SELECT GUID 
						FROM EBAS_SIKKERHED_GRUPPE 
						WHERE NAVN = @gruppeNavn )
		AND SIKKERHED_OBJEKT_TYPE_GUID = (	SELECT GUID 
							FROM EBAS_SIKKERHED_OBJEKT_TYPE 
							WHERE NAVN = @objektType )
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO
